package com.telit.uav.service;

import com.telit.common.entity.PageData;
import com.telit.common.vo.user.SysUserShortVo;
import com.telit.uav.dto.TeamDTO;
import com.telit.uav.dto.TeamDeleteDTO;
import com.telit.uav.entity.CommTeam;

import java.util.List;


/**
 * @Auther amy
 * @Describe 队伍业务层
 */
public interface TeamService {

    /**
     * 无分页队伍信息查询
     * @param teamName
     * @return
     */
    List<TeamDTO> listNoPage(String teamName, String teamType);

    /**
     * 删除
     * @param teamDeleteDTO 参数id
     */
    void remove(TeamDeleteDTO teamDeleteDTO);

    /**
     * 添加
     * @return
     */
    int add(TeamDTO teamDTO);

    /**
     * 更新
     * @return
     */
    int update(TeamDTO teamDTO);

    /**
     * 队伍详情
     * @param id
     * @return
     */
    TeamDTO detail(Long id);

    /**
     * 队伍成员详情
     * @param id
     * @return
     */
    PageData memberDetailByPage(Integer current, Integer size, Long id, String queryName);

    /**
     * 根据姓名查询
     * @param name
     * @return
     */
    CommTeam selectByName(String name);

    /**
     * 查询不在队伍中的飞手
     * @return
     */
    List<SysUserShortVo> excludeTeamUser(Long teamId);

    /**
     * 飞手列表
     * @return
     */
    List<SysUserShortVo> uavUserList();

    /**
     * 查询用户在哪个队伍
     * @param userId
     * @return
     */
    CommTeam selectByUserId(Long userId,String teamType);

}
